package com.lucky.carcodepro.config;

import cn.dev33.satoken.interceptor.SaInterceptor;
import cn.dev33.satoken.jwt.StpLogicJwtForSimple;
import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

//@Configuration
public class SaTokenConfig implements WebMvcConfigurer
{

    @Configuration
    public class SaTokenConfigure
    {
        // Sa-Token 整合 jwt (Simple 简单模式)
        @Bean
        public StpLogic getStpLogicJwt()
        {
            return new StpLogicJwtForSimple();
        }
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        // 注册 Sa-Token 拦截器，校验规则为 StpUtil.checkLogin() 登录校验。
        registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin()))
                // 排除路径模式
                .excludePathPatterns("/swagger-ui.html", "/swagger-resources/**", "/*/api-docs", "/*/api-docs/**")
                // 添加路径模式
                .addPathPatterns("/**");
    }
}
